Conventional block-based image processing (such as filtering, segmentation and compression) usually involves determining the homogeneity of the various blocks within the image data stream. A homogeneous block has no strong edge or no high frequency texture. A non-homogeneous block either has strong edges or has many high frequency textures.
The homogeneity of blocks can be used to select different processing approaches. In particular, Motion Estimation (ME) and/or Motion Compensation (MC) in video compression is often performed with different block partitions for homogeneous Macro-Blocks (MB) and non-homogeneous MBs. Since homogenous blocks use less processing resources, efficient and accurate detection of the homogeneity of blocks is important in many image processing applications. In conventional implementations, the homogeneity of a block is often detected in terms of the pixel-by-pixel texture information of the block. If the edge strength in a block is below a threshold, the block is considered homogeneous. Otherwise, the block is considered non-homogeneous.
Linear or non-linear filters are used for edge strength detection. Linear or non-linear filters are typically computationally expensive in hardware implementations and some software implementations. The computational complexity is determined by the filter, the filter kernel size, the image resolution, etc.
It would be desirable to provide a method and/or apparatus for detecting the homogeneity of a number of blocks in an image processing system that reduces the amount of computational resources when compared with using only linear or non-linear filters.